package torres.map.tile;

import java.io.Serializable;

/**
 * @author Torres
 * Represents the terrain of a tile; affects entity movement.
 */
@SuppressWarnings("serial")
public abstract class Terrain implements Serializable {
	
	protected boolean traversable;
	protected String imageName;
	
	/**
	 * Tests to see if this Terrain is traversable.
	 * @return True if this Terrain is traversable, false otherwise.
	 */
	public abstract boolean isTraversable();
	
	/**
	 * Sets the image name of this terrain to the specified name. 
	 * @param imageName The new image name for this Terrain.
	 */
	public void setImageName(String imageName) {
		this.imageName = imageName;
	}

	/**
	 * Returns the image name of this Terrain.
	 * @return The image name of this Terrain.
	 */
	public String getImageName() {
		return imageName;
	}

	
	/**
	 * Returns the String representation of this Terrain.
	 * @return The String representation of this Terrain.
	 */
	public String toString() {
		
		return "";
	}
}
